package com.hfi.security.core.social.qq.connect;

import com.hfi.security.core.social.qq.api.QQ;
import com.hfi.security.core.social.qq.api.QQUserInfo;
import org.springframework.social.connect.ApiAdapter;
import org.springframework.social.connect.ConnectionValues;
import org.springframework.social.connect.UserProfile;

/**
 * @author ChangLiang
 * @date 2019/8/21
 */
public class QQAdapter implements ApiAdapter<QQ> {

    /**
     * 判断服务提供商的服务是否可用
     * 这里默认qq服务可用
     * @param api
     * @return
     */
    @Override
    public boolean test(QQ api) {
        return true;
    }

    /**
     * 做服务提供商返回的数据与spring social标准Connection之间的适配
     * 把ConnectionValues中的值 set上
     * @param api
     * @param values
     */
    @Override
    public void setConnectionValues(QQ api, ConnectionValues values) {
            QQUserInfo userInfo = api.getUserInfo();
            values.setDisplayName(userInfo.getNickname());
            values.setImageUrl(userInfo.getFigureurl_qq_1());
            // qq是没有主页的 类似 微博是有主页url的
            values.setProfileUrl(null);
            values.setProviderUserId(userInfo.getOpenId());
    }

    /**
     *
     * @param api
     * @return
     */
    @Override
    public UserProfile fetchUserProfile(QQ api) {
        return null;
    }

    /**
     * 微博有时间线 个人主页的概念 存在更新状态的情况
     * qq中是不存在的
     * @param api
     * @param message
     */
    @Override
    public void updateStatus(QQ api, String message) {

    }
}
